Programmable calculator

ABSTRACT

A modular read-write and read-only memory unit capable of employing both direct and indirect decimal and symbolic addressing, a central processing unit capable of performing both serial binary and parallel binary-coded-decimal direct and indirect memory register arithmetic, and an input-output control unit capable of bidirectionally transferring information between the central processing unit and a number of input and output units are controlled by a microprocessor included in the central processing unit. The input and output units include a keyboard input unit with a section capable of being defined by plug-in read-only memory modules and stored programs added by the user, a magnetic card reading and recording unit capable of bidirectionally transferring information between an external magnetic card and the calculator, and a solid state output display unit capable of displaying three lines of numeric information. An output printer unit capable of printing out every alphabetic and numeric character and many other symbols individually and in messages may also be included with the other input and output units. The memory, central processing, input-output control, input, and output units are employed to provide an adaptable programmable calculator that may be operated manually by the user from the keyboard input unit or automatically by a program stored in the memory unit. This calculator may also be employed to load programs into the memory unit from the keyboard input unit, to separately transfer either data or programs bidirectionally between the memory unit and an external magnetic card, to code programs stored in the memory unit as being secure when they are transferred to an external magnetic card and thereby prevent users of the calculator from re-transferring them to an external magnetic card or obtaining any indication of the individual program steps once they are reloaded into the calculator, to edit programs stored in the memory unit and to print out keystroke logs, program lists, labels, and messages. The read-write memory available to the user may be expanded by the addition of program storage memory modules or by the alteration of the data storage memory control.

Watson et a1.

Jan. 7, 1975 PROGRAMMABLE CALCULATOR Assignee: Hewlett-Packard Company, Palo W Alto, j alif.

[22] Filed:

June 15, 1971 [21] Appl. No.: 153,437

[52] U.S. Cl. 340/172.5 [51] Int. Cl. G06f 15/02 [58] Field of Search 340/1725 [56] References Cited UNITED STATES PATENTS 3,364,395 H1968 Donofrio 340/1725 X 3,416,139 12/1968 Marx 340/1725 3,436,734 4/1969 Pomerene 340/1725 3,533,076 10/1970 ;Perkins et a1. 340/1725 3,533,076 10/1970 Perkins et al. 340/1725 3,533,078 10/1970 Perkins et a1. 340/1725 3,602,894 8/1971 lgel et a1 340/1725 3,623,012 11/1971 Lowry et a1... 340/1725 3,623,156 ll/l97l Osborne 340/1725 3,629,850 12/1971 Clark et al... 340/1725 3,631,403 12/1971 Asbo et al..... 340/1725 3,631,536 12/1971 Mosman 340/1725 OTHER PUBLICATIONS Burroughs Series L2000 Electronic Billing Computer Jan. 1969. Burroughs TCSOO Operation and Programming Manual Feb. 1969, pages 5, 56, 57, 6, 61.

Primary Examiner-Gareth D. Shaw Assistant Examiner-Mark Edward Nusbaum Attorney, Agent, or Firm-Roland l. Griffin [57] ABSTRACT A modular read-write and read-only memory unit capable of employing both direct and indirect decimal and symbolic addressing, a central processing unit capable of performing both serial binary and parallel binary-coded-decimal direct and indirect memory register arithmetic, and an input-output control unit capable of bidirectionally transferring information between the central processing unit and a number of input and output units are controlled by a microprocessor included in the central processing unit. The input and output units include akeyboard input unit with a section capable of being defined by p1ugin read-only memory modules and stored programs added by the user, a magnetic card reading and recording unit capable of bidirectionally transferring information between an external magnetic card and the calculator, and a solid state outputdisplay unit capable of displaying three lines of numeric information. An output printer unit capable of printing out every alphabetic and numeric character and many other symbols individually and in messages may also be included with the other input and output units.

The memory, central processing, input-output control, input, and output units are employed to provide an adaptable programmable calculator that may be operated manually by the user'from the keyboard input unit or automatically by a program stored in the memory unit. This calculator may also be employed to load programs into the memory unit from the keyboard input unit, to separately transfer either data or programs bidirectionally between the memory unit and an external magnetic card, to code programs stored in the memory unit as being secure when they are transferred to an external magnetic card and thereby prevent users of the calculator from re-transferring them to an external magnetic card or obtaining any indication of the individual program steps once they are reloaded into the calculator, to edit programs stored in the memory unit and to print out keystroke logs, program lists, labels, and messages. The read-write memory available to the user may be expanded by the addition of program storage memory modules 7 or by the alteration of the data storage memory control.

17 Claims, 361 Drawing Figures sum s1 UF'224 PATENTED A 7 I975 PATENTEDJAN H975 3.859.635

' sum 02 or 224 FIG 2 PATENTEUJA" H915 3.859.635

sum nsur 224 Page 0 1714 1713 System 1712 subroutine Has T2 Optional Block T1 Optional Block PA TENTEI] JAN 7 I975 12013 Security I d 12010 Availabl 12007 1 12006 Print Code Buffer Temporary D'splay 12005 (Re ister Po nter) em orary sp ay 7 12004 (Decimal Pos'tion) Temporary Di pTay 12003 (Character Ponter) 12002 Print Fl 12001 Nbrniailize lfia putomatl 12000 Execution lag 03 0 O O 8 O O 5 I 2 a E G) (2] Q 5 n V d eeeeeeeeeee ted Iunchon 2 dogma all: 9040 3* k b?) w m V z y g CD Q 0 5\'")\"")Kmme} WQJKM) 3 sum 07 or 2 224 Page 5 www @ @JKJJBJ) CQQQQ www FIG IO FIG 6 O O V O 2 una-:1: 0F mm 5511 V Kit???) U) ICS.

FIG U PATENTEUJAN H975 SHEU 100i 224 DECIHAL OPERATION INSTRUCTION GROUP (1/0 GROUP) FLQHCHART PART 1 CALL I/O ROUTINE CONTINUE (MAC-GROUP) FkOHC HART mac. 1 (RET) COIMON PATHS NOTE: SUBROUTINES FOR INDIVIDUAL INSTRUCTION EXECUTION COMON LOOPS, CCIMON BRANCHES, ETC. IN THE DETAIL HCHART PATENTEU 3.859.635

sum 110F224 FIG 7C FIG 7 FIG 7A FIG 7B PATENIEB JAN 7 I975 SHEET 12 OF 224 BASIC KEYBOARD ANDPRINTERALPHA KEYBOARD l sun nu IETUI w "an SPACE CALCULATOR KEYBOARD TO 'I'YF'EWRITER uusmn'zn ANID' smr'rzn- FIG |2- CRILF 'CARFIAGE RETURN/LINE FEED R E D B A CK PATENTEI] JAN 7 I975 SHEET 130F224 SELECT CONTROL ROUTINE mpooe SET THE RUN/ PRCM MODE FLAC RESET THE RUN/PROM nous run COMPLEMENT TI'IE KEYLOG DECREMENT THE USER PROGRAM COUNTER SET THE FLOAT FIX DISPLAY FLAG RESET THE FLOAT FIX DISPLAY FLAG GET THE NEXT IIEYCODE l SAVE AS FIXED FIELD BUILD DISPLAY LIST FROM X,Y,Z OR

PROGRAM AREA DISPLAY FROM DISPLAY LIST CONTINU .KEYOOOE SET AUTOMATIC EXECUTION FLAC MODE SET INCRE MENT THE USER PROGRAM COUNTER I LOAD srm 51m PRI CARD READER cm amen ADDRESS AND MECHANISM MECHANISM moose I l v READ & STORE RECORD moons KEYCODE INCREMENT PROGRAM COUNTER E N D KEY COOE STOP KEY INCREMENT PROGRAM COUNTER INCREMENT PROGRAM COUNTER OEPRESSEO ON KEY QOARD FETCH KEYGOOE FRIM PROGRAM MEMORY INCREMENT USER PROGRAM COUNTER PRINT KEYCOOE SET uszn PROGRAM coumn TO II RESET AUTOMATIC EXECUTION FLAO INTERPRETER SELECT AND EXECUTE ROUTINE FOR IIEYCOIJE PRINT ADDRESS mo xzvcoue STORE KEYCODE IN USER PROGRAM MEMORY INCREMENT USER PROGRAM COUNTER REVERT TO DISPLAY FOR 025 SECOND RESET AUTOMATIC EXECUTION FLAG PATENTEDJAN H915 3.859.635

SHEET 15 OF 224 LIST BUILDING PROCESS 59' Dumas. sen-my To nuawe M9. smknug r ernuu To Ewart-cu.

FIG ISA PATENTED JAN 3.859.635 sum 15 or 224 LIST BUILDING PROCESS salmon 11: msvmv.

PATENTED JAN 71975 sum 1701 224 L|ST BUILDING PROCESS IM Cmgp mm, 'n-uS OUTPUT" AM hug To Zeta APIEM As \ooooo.

16%"harm 001' A FIG 15c 

1. An electronic desk type calculator, portable calculator, or the like including an input unit for entering information into the calculator, a basic first memory unit into which information may be written and from which information may be read, a basic second memory unit for storing routines and/or subroutines to be executed by the calculator in performing selected functions, plug-in adaptor means for enabling the user to removably plug one or more additional second memory units for storing routines and/or subroutines to be executed by the calculator in performing additional selected functions into the calculator to increase the number of functions that may be performed by the calculator, processing means responsive to information from the input unit or the basic first memory unit and to operating states within the calculator itself for selectively executing one or more of the routine and/or subroutines stored in the basic second memory unit to perform one or more of the selected functions employing information from one or both of the input and basic first memory units, said processing means being further responsive to information from the input unit or the basic first memory unit and to operating states within The calculator itself when an additional second memory unit is plugged into the calculator for selectively executing one or more of the routines and/or subroutines stored in that additional second memory unit to perform one or more of the additional selected functions employing information from one or both of the input and basic first memory units, and an output unit for providing an output indication of the results of the selected and additional selected functions performed by the calculator.
 2. An electronic calculator as in claim 1 wherein said basic first memory unit comprises a first section for storing data and a separate second section for storing program steps, and said first and second sections of the basic first memory unit may be separately internally expanded to increase the data and program-step storage capacity of the basic first memory unit.
 3. An electronic calculator as in claim 1 wherein said basic first memory unit is a read-write memory, and each of said basic and additional second memory units is a read-only memory.
 4. An electronic calculator as in claim 1 wherein said calculator includes one or more receptacles into said calculator and additional second memory units include electrical connection means for electrically connecting the calculator and each of the additional second memory units plugged into one of the receptacles in the calculator, said plug-in adaptor means including the receptacles in the calculator and the electrical connection means, and said processing means includes means for detecting either the presence or the absence of each additional second memory unit plugged into one of the receptacles in the calculator.
 5. An electronic calculator as in claim 4 wherein said processing means includes addressing means coupled to the basic first and second memory units and to the electrical connection means for addressing the basic first and second memory units and each of the additional second memory units plugged into one of the receptacles in the calculator, and accessing means coupled to the basic first and second memory units and to the electrical connection means for accessing the basic first and second memory units and each of the additional second memory units plugged into one of the receptacles in the calculator.
 6. An electronic calculator as in claim 5 wherein said electrical connection means comprises an electrical connector on each of the additional second memory units and a mating electrical connector in each of the receptacles in the calculator, said addressing means comprises a memory address register and a first bus system for coupling the memory address register to the basic first and second memory units and to the electrical connector in each of the receptacles in the calculator, and said accessing means comprises a memory access register and a second bus system for coupling the memory access register to the basic first and second memory units and to the electrical connector in each of the receptacles in the calculator.
 7. An electronic calculator as in claim 6 wherein said basic first memory unit is a read-write memory, and each of said basic and additional second memory units is a read-only memory.
 8. An electronic calculator as in claim 6 wherein said input unit is a keyboard input unit including a first plurality of keys for enabling the user to manually initiate the basic functions that may be performed by the calculator without an additional second memory unit, and a second plurality of keys employed alone or with one or more of the first plurality of keys for enabling the user to manually initiate the added functions that may be performed by the calculator when each of the additional second memory units is plugged into one of the receptacles in the calculator.
 9. An electronic calculator as in claim 8 wherein said basic first memory unit is a read-write memory, and each of said basic and additional second memory units is a read-only memory.
 10. An electronic calculator as in claim 8 including a keybOard overlay for designating the added functions that may be initiated by the second plurality of keys when one of the additional second memory units is plugged into one of the receptacles in the calculator.
 11. An electronic calculator as in claim 1 wherein said input unit is a keyboard input unit including a first plurality of keys for enabling the user to manually initiate the basic functions that may be performed by the calculator without an additional second memory unit, and a second plurality of keys employed alone or with one or more of the first plurality of keys for enabling the user to manually initiate the added functions that may be performed by the calculator when each of the additional second memory units is plugged into one of the receptacles in the calculator.
 12. An electronic calculator as in claim 11 including a keyboard overlay for designating the added functions that may be initiated by the second plurality of keys when one of the additional second memory units is plugged into one of the receptacles in the calculator.
 13. An electronic caluclator as in claim 1 wherein said calculator includes adaptor means for accommodating one or more additional first memory units to internally expand the storage capacity of the basic first memory unit.
 14. An electronic calculator as in claim 13 wherein said basic first memory unit includes a first section for storing data and a separate second section for storing program steps, and said adaptor means is operable for accommodating the additional first memory units to separately, internally expand the data and program-step storage capacity of the first and second sections of the basic first memory unit.
 15. An electronic calculator as in claim 14 wherein said processing means includes addressing means coupled to the basic first and second memory units and to the adaptor means for addressing the basic first and second memory units and each added first memory unit, and accessing means coupled to the basic first and second memory units and to the adaptor means for accessing the basic first and second memory units and each added first memory unit.
 16. An electronic calculator as in claim 15 wherein said addressing means comprises a memory address register and a first bus system for coupling the memory address register to the basic first and second memory units and to one or more electrical connectors of the adaptor means, and said accessing means comprises a memory access register and a second bus system for coupling the memory access register to the basic first and second memory units and to the electrical connectors of the adaptor means.
 17. An electronic calculator as in claim 16 wherein said basic first memory unit is a read-write memory, and each of said basic and additional second memory units is a read-only memory. 